#ifndef _FRACTAL_FRACTAL_COMPRESS_DOMAIN_DOMAIN_BASE_
#define _FRACTAL_FRACTAL_COMPRESS_DOMAIN_DOMAIN_BASE_


#include <string>
#include "../../rectangle.hpp"


using std::string;


struct Domain
{
    Domain(const Rectangle &bounds);
    virtual ~Domain(void);

    Rectangle bounds;
    virtual string serialize(void) const = 0;
};


class DomainGenerator
{
public:
    virtual ~DomainGenerator(void);

    virtual Domain *next(void);
};


#endif  // _FRACTAL_FRACTAL_COMPRESS_DOMAIN_DOMAIN_BASE_
